When users communicate with agents through an electronic communication medium, such as an iMessage™, at the system, the system continuously monitors and manages the conversation for each agent or agent group. For example, the load for each agent may be managed through a round robin assignment or based on the number of conversations that the agent is currently assigned to.
In the round robin example, if five agents are available, the system will sequentially switch the message assignment between the five available agents. In the load balance assignment example, if there are five agents actively communicating with other users and a sixth agent becomes active, then any new communication (or conversation) will be assigned to the sixth agent. This will occur regardless of the number of active conversations assigned to each agent.
Conventional live chat systems need to ensure that any user, who is currently online and interested to join a chat, is connected as quickly as possible to an available agent. This is usually accomplished by placing the users in a queue and assigning the queued chats to agents. Users need to stay connected to the chat session to remain in the queue, and if they get disconnected, the users are removed from the queue. Similarly, agents remain connected to the ongoing chat until the session is ended. Generally, an agent's load is capped based on the number of ongoing chats. Therefore, traditional live chat systems involve a session-based chat, in which the user and agent need to continuously stay connected and available. Such a chat is considered to be completed whenever either of them disconnects from the session. This implies that communication between the user and the agent must occur in real-time.
These techniques are not built for asynchronous messaging use cases. An asynchronous messaging system allows the user and agent to communicate without the need to be locked into sessions. The user and agent do not need to be simultaneously online to communicate, and thus, their interactions can be distributed over a longer timeline.
A conversation between the user and the agent generally begins when the first message is sent by the user or the agent and can be continued at any time. For example, in a mobile environment, a consumer will typically engage with the agent at his or her convenience. In other words, the consumer typically will not respond to the agent's message within a predefined period of time. Using the above approaches in the mobile environment may result in improper load balancing. This will create a delay in the response time between the user and the agent.
Because the concept of a conversation (between the consumer and agent) being active or inactive is not considered by existing systems, moving the conversation from one agent to another based on the conversation being active or inactive, etc., are not performed in a comprehensive manner, the above-mentioned techniques may further slow the communication processing time for each conversation in the system.
Thus, an alternative process for load balancing the assignment for each agent may be beneficial.